home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 1 / Pier Shareware 1.iso / 007a / courspas.exe / CHAP12.EXE / LISTE3.PAS < prev    next >
Pascal/Delphi Source File  |  1991-01-06  |  2KB  |  69 lines

  1. program DemoListes3;  {LISTE3.PAS}
  2. uses
  3.   crt;  { unité de Turbo Pascal 6 }
  4.  
  5. type
  6.   pointeur = ^nombres;
  7.   nombres  = record
  8.                nombre: integer;
  9.                gauche, droite: pointeur;
  10.              end;
  11.  
  12. var
  13.   p1,p2,
  14.   origine: pointeur;
  15.   i      : integer;
  16.  
  17. {------------------------------------------------}
  18. { creer_liste                                    }
  19. {------------------------------------------------}
  20. procedure creer_liste;
  21. begin;
  22.   new(p1);
  23.   origine:=p1; {par sécurité, pour qu'un pointeur demeure sur
  24.                un élément de la liste }
  25.   p1^.gauche:=nil;
  26.   p1^.droite:=nil;
  27.   p1^.nombre:=1;
  28.   for i:=2 to 10 do
  29.   begin;
  30.     new(p2); {création d'un nouvel élément}
  31.     p2^.nombre:=i;
  32.     p2^.gauche:=p1; {pointeur gauche de p2 vers p1}
  33.     p1^.droite:=p2; {pointeur droit  de p1 vers p2}
  34.     p1:=p2;
  35.   end;
  36.   p2^.droite:=nil;
  37. end;
  38. {------------------------------------------------}
  39. { afficher_liste                                 }
  40. {------------------------------------------------}
  41. procedure afficher_liste;
  42. begin;
  43.   clrscr;
  44.   writeln('Affichage de la série de nombres:');
  45.   writeln;
  46.   p1:=origine;
  47.   while p1<>nil do  {affichage de la liste de gauche à droite}
  48.   begin
  49.     write(p1^.nombre,' ');
  50.     p2:=p1;
  51.     p1:=p1^.droite; {pointeur p1 sur l'élément de droite}
  52.   end;
  53.   p1:=p2; {pointeur p1 revient au dernier élément}
  54.   writeln;
  55.   writeln;
  56.   while p1<>nil do {affichage de la liste de droite à gauche}
  57.   begin
  58.     write(p1^.nombre,' ');
  59.     p1:=p1^.gauche;
  60.   end;
  61.   readln;
  62. end;
  63. {------------------------------------------------}
  64.  
  65. begin  { programme principal }
  66.   creer_liste;
  67.   afficher_liste;
  68. end.
  69.